import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path'
import vueJsx from '@vitejs/plugin-vue-jsx'

export default defineConfig({
  plugins: [
    vue({
      // 关键配置：防止重复生成 JS 文件
      template: {
        transformAssetUrls: {
          includeAbsolute: false
        }
      }
    }),
    vueJsx()
  ],
  resolve: {
    alias: {
      '@': path.resolve(__dirname, './src'),
      // '~@': path.resolve(__dirname, './src')
    }
  },
  build: {
    rollupOptions: {
      external: [
        'vue',
        '@vueup/vue-quill',
        'vue3-barcode',
        'vuedraggable',
        'china-area-data',
        'element-plus'
      ],
      output: {
        globals: {
          vue: 'Vue',
          'vuedraggable': 'draggable',
          '@vueup/vue-quill': 'vueQuill',
          'vue3-barcode': 'fancyBarCode',
          "element-plus": "elementPlus",
        },
        // 关键修改：使用更严格的文件命名规则
        entryFileNames: `assets/[name].js`,
        chunkFileNames: `assets/[name].js`,
        assetFileNames: `assets/[name].[ext]`,
        // 禁止创建额外的入口点
        preserveModules: false
      }
    },
    cssCodeSplit: false,
    lib: {
      entry: './src/components/index.ts',
      name: 'form-designer',
      formats: ['es', 'umd'] // 明确指定输出格式
    },
    // 清空输出目录
    emptyOutDir: true,
    // 禁止生成 sourcemap
    sourcemap: false
  }
})